/**
 * @filename:SysMenu 2022年1月27日
 * @project Wonder wallet Framework  V1.0
 * Copyright(c) 2020 LuZhongren Co. Ltd. 
 * All right reserved. 
 */
package com.wonder.admin.domain;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.activerecord.Model;



import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;


/**   
 * @Description:TODO(菜单管理实体类)
 * 
 * @version: V1.0
 * @author: LuZhongren
 * 
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("sys_menu")
@ApiModel(value="menu对象", description="菜单管理表")
public class SysMenu extends Model<SysMenu> {

	private static final long serialVersionUID = 1643434920354L;
	
	@TableId(value ="menu_id", type = IdType.AUTO)
	@ApiModelProperty(name = "menu_id" , value = "菜单ID")
	private Long menu_id;
    
 	@TableField(value = "pid")
	@ApiModelProperty(name = "pid" , value = "父级id")
	private Integer pid;
    
 	@TableField(value = "controller_name")
	@ApiModelProperty(name = "controller_name" , value = "模块名称")
	private String controller_name;
    
 	@TableField(value = "title")
	@ApiModelProperty(name = "title" , value = "模块标题")
	private String title;
    
 	@TableField(value = "pk")
	@ApiModelProperty(name = "pk" , value = "主键名")
	private String pk;
    
 	@TableField(value = "table_name")
	@ApiModelProperty(name = "table_name" , value = "模块数据库表")
	private String table_name;
    
 	@TableField(value = "create_code")
	@ApiModelProperty(name = "create_code" , value = "是否允许生成模块")
	private Integer create_code;
    
 	@TableField(value = "status")
	@ApiModelProperty(name = "status" , value = "0隐藏 1显示")
	private Integer status;
    
 	@TableField(value = "sortid")
	@ApiModelProperty(name = "sortid" , value = "排序号")
	private Integer sortid;
    
 	@TableField(value = "create_table")
	@ApiModelProperty(name = "create_table" , value = "是否生成数据库表")
	private Integer create_table;
    
 	@TableField(value = "component_path")
	@ApiModelProperty(name = "component_path" , value = "组件路径")
	private String component_path;
 	
 	@TableField(value = "module")
	@ApiModelProperty(name = "module" , value = "模块包名")
	private String module;
    
 	@TableField(value = "icon")
	@ApiModelProperty(name = "icon" , value = "icon字体图标")
	private String icon;
    
 	@TableField(value = "tab_config")
	@ApiModelProperty(name = "tab_config" , value = "tab选项卡菜单配置")
	private String tabConfig;
    
 	@TableField(value = "app_id")
	@ApiModelProperty(name = "app_id" , value = "所属模块")
	private Integer app_id;
    
 	@TableField(value = "is_post")
	@ApiModelProperty(name = "is_post" , value = "是否允许投稿")
	private Integer is_post;
    
 	@TableField(value = "upload_config_id")
	@ApiModelProperty(name = "upload_config_id" , value = "上传配置id")
	private Integer upload_config_id;
    
 	@TableField(value = "`connect`")
	@ApiModelProperty(name = "connect" , value = "数据库连接")
	private String connect;
    
 	@TableField(value = "page_type")
	@ApiModelProperty(name = "page_type" , value = "页面类型")
	private Integer page_type;
    
 	@TableField(value = "home_show")
	@ApiModelProperty(name = "home_show" , value = "首页快捷导航显示状态")
	private Integer home_show;
    
 	@TableField(value = "menu_pic")
	@ApiModelProperty(name = "menu_pic" , value = "快捷导航的图片")
	private String menu_pic;
 	
 	@TableField(value = "label_width")
	@ApiModelProperty(name = "label_width" , value = "标签文字宽度")
	private Integer label_width;
 	
 	
 	@ApiModelProperty(name = "children" , value = "下级菜单")
	@TableField(exist = false)
	private List<SysMenu> children = new ArrayList<SysMenu>();
    

	@Override
    public Serializable pkVal() {
        return this.menu_id;
    }
}
